/*
 * GraphicsInstance.h
 *
 *  Created on: Jul 6, 2009
 *      Author: kurt
 */

#ifndef GRAPHICSINSTANCE_H_
#define GRAPHICSINSTANCE_H_

#include "Object.h"

namespace objdraw {

class GraphicsInstance: public objdraw::Object 
{
	protected:	
		GraphicsInstance();
		GraphicsInstance(const GraphicsInstance&);
		GraphicsInstance& operator= (const GraphicsInstance&);
		
		static GraphicsInstance* _instance;
		int dispBufferNumber;
		void * displayBuffer;
		void * drawBuffer;
		void * depthBuffer;
	public:
		virtual ~GraphicsInstance();
		static GraphicsInstance * Instance(void);
		
		bool Init3DGraphics(void);
		unsigned int * getDisplayList();
		unsigned int getDisplayListSize();
		
		void * flipScreen();
		void * getVramDrawBuffer();
		void * getVramDisplayBuffer();
};

}

#endif /* GRAPHICSINSTANCE_H_ */
